#ifndef __SPLIT_TOOL_JIEBA_H__
#define __SPLIT_TOOL_JIEBA_H__
#include"cppjieba/simhash/Simhasher.hpp"
#include"cppjieba/Jieba.hpp"
#include"Configuration.h"
#include<string>
#include<vector>
using simhash::Simhasher;

class SplitTool
{
public:
    virtual ~SplitTool();
    virtual std::vector<std::string> cut(const std::string& sentence)=0;
    virtual Simhasher* hasher()=0;
};

class SplitToolJieba
:public SplitTool
{

public:

    SplitToolJieba(Configuration * conf);

    ~SplitToolJieba();

    virtual std::vector<std::string> cut(const std::string& sentence) override;
     Simhasher* hasher() override;

private:

    Configuration * _conf;
    cppjieba::Jieba* _jieba;
    Simhasher*  _hasher;
};

#endif
